Elasticsearch Cluster সেটআপ এবং Performance Tuning একটি গুরুত্বপূর্ণ প্রক্রিয়া, বিশেষ করে বড় আকারের লগ ডেটা বা ডকুমেন্ট ডেটা পরিচালনার ক্ষেত্রে। একটি ক্লাস্টার সেটআপ করার সময় এবং পারফরম্যান্স টিউনিং করার ক্ষেত্রে কিছু নির্দিষ্ট ধাপ এবং বেস্ট প্র্যাকটিস রয়েছে। নিচে বিস্তারিত স্টেপ-বাই-স্টেপ নির্দেশনা দেওয়া হলো:
Elasticsearch Cluster সেটআপ করার জন্য কয়েকটি গুরুত্বপূর্ণ স্টেপ আছে। ক্লাস্টার সেটআপ করার সময় ক্লাস্টারের আর্কিটেকচার, নোড টাইপ, এবং কনফিগারেশন ফাইলগুলোকে সঠিকভাবে কনফিগার করা খুব গুরুত্বপূর্ণ।
Elasticsearch Cluster-এ বিভিন্ন ধরণের নোড থাকতে পারে:
বেস্ট প্র্যাকটিস: বড় ক্লাস্টারের জন্য আলাদা Master, Data, এবং Coordinating নোড কনফিগার করা ভালো। ছোট ক্লাস্টারের ক্ষেত্রে নোডগুলো মিক্সড টাইপ হতে পারে।
Elasticsearch ইনস্টল করা:
docker run -d --name es01 -p 9200:9200 -e "discovery.type=single-node" elasticsearch:8.0.0
ক্লাস্টার কনফিগারেশন আপডেট করা (elasticsearch.yml):
cluster.name: my-elasticsearch-cluster
node.name: es-node-1
node.roles: [master, data]
network.host: 0.0.0.0
discovery.seed_hosts: ["es-node-1", "es-node-2", "es-node-3"]
cluster.initial_master_nodes: ["es-node-1", "es-node-2", "es-node-3"]
node.roles
নির্দেশ করে যে এই নোডটি কোন ধরনের কাজ করবে (master, data)।একাধিক নোড তৈরি করা:
node.name
এবং network.host
আলাদা করতে হবে।Cluster Health চেক করা:
curl
কমান্ড দিয়ে ক্লাস্টারের হেলথ চেক করতে পারেন:curl -X GET "localhost:9200/_cluster/health?pretty"
Elasticsearch Cluster-এ পারফরম্যান্স টিউনিং করার জন্য নিচের কিছু গুরুত্বপূর্ণ স্টেপ এবং বেস্ট প্র্যাকটিস অনুসরণ করতে হবে:
Elasticsearch জাভা ভিত্তিক, তাই এটি JVM ব্যবহার করে। মেমরি এবং Heap Size সঠিকভাবে সেট করা না হলে পারফরম্যান্স ইস্যু দেখা দিতে পারে।
jvm.options
ফাইলে Heap Size সেট করুন:-Xms4g
-Xmx4g
cluster.routing.allocation.disk.watermark.low: 85%
cluster.routing.allocation.disk.watermark.high: 90%
Elasticsearch-এর Thread Pool সঠিকভাবে কনফিগার করা পারফরম্যান্স বাড়াতে সাহায্য করে:
thread_pool.bulk.size: 4
thread_pool.bulk.queue_size: 200
thread_pool.search
সেটিংস কনফিগার করা যেতে পারে।indices.queries.cache.size: 20%
indices.fielddata.cache.size: 40%
Elasticsearch Cluster মনিটরিং এবং ট্রাবলশুটিং করতে পারে Kibana, Elastic Stack-এর Monitoring ফিচার, অথবা অন্যান্য টুল (যেমন Grafana, Prometheus)।
curl -X GET "localhost:9200/_cluster/health?pretty"
curl -X GET "localhost:9200/_nodes/stats?pretty"
Elasticsearch Cluster সেটআপ এবং Performance Tuning করার প্রক্রিয়া বড় আকারের ডেটা ম্যানেজমেন্ট এবং রিয়েল-টাইম সার্চ অপারেশনের জন্য অত্যন্ত গুরুত্বপূর্ণ। সঠিকভাবে ক্লাস্টার কনফিগার এবং টিউন করলে আপনি পারফরম্যান্স ইস্যু কমাতে এবং স্কেল করতে সক্ষম হবেন।